import { fileURLToPath, URL } from 'node:url'
import tsconfigPaths from 'vite-plugin-tsconfig-paths'
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
    vue(),
    tsconfigPaths({
      loose: true // 允许导入时省略 .ts 扩展名
    })
  ],
  css: {
    postcss: {
      // 确保这里指向你的 postcss.config.js
      config: true
    }
  },
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url)),
      // Element Plus 路径兼容
      'element-plus/lib': 'element-plus/es',
      'element-plus/lib/locale/lang/zh-cn': 'element-plus/es/locale/lang/zh-cn',
      // 关键修复：为 @stomp/stompjs 指定正确的 ES 模块路径
      '@stomp/stompjs': '@stomp/stompjs/dist/esm/index.js'
    },
    extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json', '.vue']
  },
  // 解决 sockjs-client 和 stompjs 依赖的全局变量问题
  define: {
    'global': 'window', // 模拟 Node.js 的 global 变量
    'process.env': {} // 可选：如果其他库依赖 process.env
  },
  server: {
    host: '0.0.0.0',
    port: 8888,
    proxy: {
      '/local': {
        // target: 'https://172.17.11.59:1111/',
        changeOrigin: true,
        ws: true, // 确保 WebSocket 代理正常工作
        rewrite: (path) => path.replace(/^\/local/, ''),
      },
      // 可选：添加 WebSocket 代理（如果后端不在同一端口）
      '/ws': {
        target: 'http://localhost:8080', // 后端 WebSocket 地址
        ws: true,
        changeOrigin: true
      },
      '/apiAI': {
        target: 'https://api.deepseek.com',
        changeOrigin: true,
        rewrite: path => path.replace(/^\/apiAI/, '/v1') // 添加 /v1 路径前缀
      }
    },
  },
})